using System;
using System.Collections;
using System.Runtime.InteropServices;
namespace BMC.ARSystem
{
	[ARStructTypeInfo(Name = "ARFilterActionNotify", NumberOfMembers = 11u), ClassInterface, Guid("2ab3bb28-75e8-4fbf-94c6-d1f3b3994922"), ProgId("BMC.ARSystem.NotifyAction")]
	public class NotifyAction : Action
	{
		[ARStructMemTypeInfo(Name = "user", Offset = 0u)]
		private string _user;
		[ARStructMemTypeInfo(Name = "notifyText", Offset = 1u)]
		private string _notifyText;
		[ARStructMemTypeInfo(Name = "notifyPriority", Offset = 2u)]
		private uint _notifyPriority;
		[ARStructMemTypeInfo(Name = "notifyMechanism", Offset = 3u)]
		private uint _notifyMechanism;
		[ARStructMemTypeInfo(Name = "notifyMechanismXRef", Offset = 4u)]
		private uint _notifyMechanismXRef;
		[ARStructMemTypeInfo(Name = "subjectText", Offset = 5u)]
		private string _subjectText;
		[ARStructMemTypeInfo(Name = "fieldIdListType", Offset = 6u)]
		private uint _fieldIdListType;
		[ARStructMemTypeInfo(Name = "fieldIdList", Offset = 7u)]
		private ArrayList _fieldIdList;
		[ARStructMemTypeInfo(Name = "notifyBehavior", Offset = 8u)]
		private uint _notifyBehavior;
		[ARStructMemTypeInfo(Name = "notifyPermission", Offset = 9u)]
		private uint _notifyPermission;
		public string User
		{
			get
			{
				return this._user;
			}
			set
			{
				this._user = value;
			}
		}
		public string NotifyText
		{
			get
			{
				return this._notifyText;
			}
			set
			{
				this._notifyText = value;
			}
		}
		public uint NotifyPriority
		{
			get
			{
				return this._notifyPriority;
			}
			set
			{
				this._notifyPriority = value;
			}
		}
		public uint NotifyMechanism
		{
			get
			{
				return this._notifyMechanism;
			}
			set
			{
				this._notifyMechanism = value;
			}
		}
		public uint NotifyMechanismXRef
		{
			get
			{
				return this._notifyMechanismXRef;
			}
			set
			{
				this._notifyMechanismXRef = value;
			}
		}
		public string SubjectText
		{
			get
			{
				return this._subjectText;
			}
			set
			{
				this._subjectText = value;
			}
		}
		public uint FieldIdListType
		{
			get
			{
				return this._fieldIdListType;
			}
			set
			{
				this._fieldIdListType = value;
			}
		}
		public ArrayList FieldIdList
		{
			get
			{
				return this._fieldIdList;
			}
			set
			{
				this._fieldIdList = value;
			}
		}
		public uint NotifyBehavior
		{
			get
			{
				return this._notifyBehavior;
			}
			set
			{
				this._notifyBehavior = value;
			}
		}
		public uint NotifyPermission
		{
			get
			{
				return this._notifyPermission;
			}
			set
			{
				this._notifyPermission = value;
			}
		}
		public NotifyAction()
		{
		}
		protected NotifyAction(object[] rawData, Server server)
		{
			int[] indexSpec = new int[1];
			this.User = (string)Util.GetAt(rawData, indexSpec);
			this.NotifyText = (string)Util.GetAt(rawData, new int[]
			{
				1
			});
			this.NotifyPriority = (uint)Util.GetAt(rawData, new int[]
			{
				2
			});
			this.NotifyMechanism = (uint)Util.GetAt(rawData, new int[]
			{
				3
			});
			this.NotifyMechanismXRef = (uint)Util.GetAt(rawData, new int[]
			{
				4
			});
			this.SubjectText = (string)Util.GetAt(rawData, new int[]
			{
				5
			});
			this.FieldIdListType = (uint)Util.GetAt(rawData, new int[]
			{
				6
			});
			this.FieldIdList = ARTypeMgr.Instance.ArrayListFromVariant(Type.GetType("System.UInt32"), (object[])Util.GetAt(rawData, new int[]
			{
				7
			}), null);
			this.NotifyBehavior = (uint)Util.GetAt(rawData, new int[]
			{
				8
			});
			this.NotifyPermission = (uint)Util.GetAt(rawData, new int[]
			{
				9
			});
		}
		internal static NotifyAction createInstance(object[] rawData, Server server)
		{
			if (rawData.Length == 10 && rawData[10] != null)
			{
				return new AdvancedNotifyAction(rawData, server);
			}
			return new NotifyAction(rawData, server);
		}
	}
}
